{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from scipy.stats.mstats import winsorize\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.linear_model import LinearRegression\n",
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>close</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>total_turnover</th>\n",
       "      <th>volume</th>\n",
       "      <th>limit_up</th>\n",
       "      <th>limit_down</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-01-03</th>\n",
       "      <td>8.9788</td>\n",
       "      <td>9.0281</td>\n",
       "      <td>9.0478</td>\n",
       "      <td>8.9591</td>\n",
       "      <td>4.205952e+08</td>\n",
       "      <td>45984049.0</td>\n",
       "      <td>9.8658</td>\n",
       "      <td>8.0720</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-04</th>\n",
       "      <td>9.0182</td>\n",
       "      <td>9.0281</td>\n",
       "      <td>9.0478</td>\n",
       "      <td>9.0084</td>\n",
       "      <td>4.115034e+08</td>\n",
       "      <td>44932953.0</td>\n",
       "      <td>9.9348</td>\n",
       "      <td>8.1213</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-05</th>\n",
       "      <td>9.0379</td>\n",
       "      <td>9.0379</td>\n",
       "      <td>9.0478</td>\n",
       "      <td>9.0182</td>\n",
       "      <td>3.157697e+08</td>\n",
       "      <td>34437291.0</td>\n",
       "      <td>9.9348</td>\n",
       "      <td>8.1213</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-06</th>\n",
       "      <td>9.0379</td>\n",
       "      <td>8.9985</td>\n",
       "      <td>9.0379</td>\n",
       "      <td>8.9788</td>\n",
       "      <td>3.271764e+08</td>\n",
       "      <td>35815420.0</td>\n",
       "      <td>9.9447</td>\n",
       "      <td>8.1312</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              open   close    high     low  total_turnover      volume  \\\n",
       "2017-01-03  8.9788  9.0281  9.0478  8.9591    4.205952e+08  45984049.0   \n",
       "2017-01-04  9.0182  9.0281  9.0478  9.0084    4.115034e+08  44932953.0   \n",
       "2017-01-05  9.0379  9.0379  9.0478  9.0182    3.157697e+08  34437291.0   \n",
       "2017-01-06  9.0379  8.9985  9.0379  8.9788    3.271764e+08  35815420.0   \n",
       "\n",
       "            limit_up  limit_down  \n",
       "2017-01-03    9.8658      8.0720  \n",
       "2017-01-04    9.9348      8.1213  \n",
       "2017-01-05    9.9348      8.1213  \n",
       "2017-01-06    9.9447      8.1312  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_price(\"000001.XSHE\", start_date=\"2017-01-01\", end_date=\"2017-01-06\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "price = get_price(['000024.XSHE', '000001.XSHE', '000002.XSHE'], start_date='2015-04-01', end_date='2015-04-12')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<class 'rqcommons.pandas_patch.HybridDataPanel'>\n",
       "Dimensions: 8 (items) x 7 (major_axis) x 3 (minor_axis)\n",
       "Items axis: open to limit_down\n",
       "Major_axis axis: 2015-04-01 00:00:00 to 2015-04-10 00:00:00\n",
       "Minor_axis axis: 000024.XSHE to 000002.XSHE"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# pandas  panel\n",
    "price"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[datetime.date(2017, 1, 3),\n",
       " datetime.date(2017, 1, 4),\n",
       " datetime.date(2017, 1, 5),\n",
       " datetime.date(2017, 1, 6),\n",
       " datetime.date(2017, 1, 9),\n",
       " datetime.date(2017, 1, 10),\n",
       " datetime.date(2017, 1, 11),\n",
       " datetime.date(2017, 1, 12),\n",
       " datetime.date(2017, 1, 13),\n",
       " datetime.date(2017, 1, 16),\n",
       " datetime.date(2017, 1, 17),\n",
       " datetime.date(2017, 1, 18),\n",
       " datetime.date(2017, 1, 19),\n",
       " datetime.date(2017, 1, 20),\n",
       " datetime.date(2017, 1, 23),\n",
       " datetime.date(2017, 1, 24),\n",
       " datetime.date(2017, 1, 25),\n",
       " datetime.date(2017, 1, 26),\n",
       " datetime.date(2017, 2, 3),\n",
       " datetime.date(2017, 2, 6),\n",
       " datetime.date(2017, 2, 7),\n",
       " datetime.date(2017, 2, 8),\n",
       " datetime.date(2017, 2, 9),\n",
       " datetime.date(2017, 2, 10),\n",
       " datetime.date(2017, 2, 13),\n",
       " datetime.date(2017, 2, 14),\n",
       " datetime.date(2017, 2, 15),\n",
       " datetime.date(2017, 2, 16),\n",
       " datetime.date(2017, 2, 17),\n",
       " datetime.date(2017, 2, 20),\n",
       " datetime.date(2017, 2, 21),\n",
       " datetime.date(2017, 2, 22),\n",
       " datetime.date(2017, 2, 23),\n",
       " datetime.date(2017, 2, 24),\n",
       " datetime.date(2017, 2, 27),\n",
       " datetime.date(2017, 2, 28),\n",
       " datetime.date(2017, 3, 1),\n",
       " datetime.date(2017, 3, 2),\n",
       " datetime.date(2017, 3, 3),\n",
       " datetime.date(2017, 3, 6),\n",
       " datetime.date(2017, 3, 7),\n",
       " datetime.date(2017, 3, 8),\n",
       " datetime.date(2017, 3, 9),\n",
       " datetime.date(2017, 3, 10),\n",
       " datetime.date(2017, 3, 13),\n",
       " datetime.date(2017, 3, 14),\n",
       " datetime.date(2017, 3, 15),\n",
       " datetime.date(2017, 3, 16),\n",
       " datetime.date(2017, 3, 17),\n",
       " datetime.date(2017, 3, 20),\n",
       " datetime.date(2017, 3, 21),\n",
       " datetime.date(2017, 3, 22),\n",
       " datetime.date(2017, 3, 23),\n",
       " datetime.date(2017, 3, 24),\n",
       " datetime.date(2017, 3, 27),\n",
       " datetime.date(2017, 3, 28),\n",
       " datetime.date(2017, 3, 29),\n",
       " datetime.date(2017, 3, 30),\n",
       " datetime.date(2017, 3, 31),\n",
       " datetime.date(2017, 4, 5),\n",
       " datetime.date(2017, 4, 6),\n",
       " datetime.date(2017, 4, 7),\n",
       " datetime.date(2017, 4, 10),\n",
       " datetime.date(2017, 4, 11),\n",
       " datetime.date(2017, 4, 12),\n",
       " datetime.date(2017, 4, 13),\n",
       " datetime.date(2017, 4, 14),\n",
       " datetime.date(2017, 4, 17),\n",
       " datetime.date(2017, 4, 18),\n",
       " datetime.date(2017, 4, 19),\n",
       " datetime.date(2017, 4, 20),\n",
       " datetime.date(2017, 4, 21),\n",
       " datetime.date(2017, 4, 24),\n",
       " datetime.date(2017, 4, 25),\n",
       " datetime.date(2017, 4, 26),\n",
       " datetime.date(2017, 4, 27),\n",
       " datetime.date(2017, 4, 28),\n",
       " datetime.date(2017, 5, 2),\n",
       " datetime.date(2017, 5, 3),\n",
       " datetime.date(2017, 5, 4),\n",
       " datetime.date(2017, 5, 5),\n",
       " datetime.date(2017, 5, 8),\n",
       " datetime.date(2017, 5, 9),\n",
       " datetime.date(2017, 5, 10),\n",
       " datetime.date(2017, 5, 11),\n",
       " datetime.date(2017, 5, 12),\n",
       " datetime.date(2017, 5, 15),\n",
       " datetime.date(2017, 5, 16),\n",
       " datetime.date(2017, 5, 17),\n",
       " datetime.date(2017, 5, 18),\n",
       " datetime.date(2017, 5, 19),\n",
       " datetime.date(2017, 5, 22),\n",
       " datetime.date(2017, 5, 23),\n",
       " datetime.date(2017, 5, 24),\n",
       " datetime.date(2017, 5, 25),\n",
       " datetime.date(2017, 5, 26),\n",
       " datetime.date(2017, 5, 31),\n",
       " datetime.date(2017, 6, 1),\n",
       " datetime.date(2017, 6, 2),\n",
       " datetime.date(2017, 6, 5),\n",
       " datetime.date(2017, 6, 6),\n",
       " datetime.date(2017, 6, 7),\n",
       " datetime.date(2017, 6, 8),\n",
       " datetime.date(2017, 6, 9),\n",
       " datetime.date(2017, 6, 12),\n",
       " datetime.date(2017, 6, 13),\n",
       " datetime.date(2017, 6, 14),\n",
       " datetime.date(2017, 6, 15),\n",
       " datetime.date(2017, 6, 16),\n",
       " datetime.date(2017, 6, 19),\n",
       " datetime.date(2017, 6, 20),\n",
       " datetime.date(2017, 6, 21),\n",
       " datetime.date(2017, 6, 22),\n",
       " datetime.date(2017, 6, 23),\n",
       " datetime.date(2017, 6, 26),\n",
       " datetime.date(2017, 6, 27),\n",
       " datetime.date(2017, 6, 28),\n",
       " datetime.date(2017, 6, 29),\n",
       " datetime.date(2017, 6, 30),\n",
       " datetime.date(2017, 7, 3),\n",
       " datetime.date(2017, 7, 4),\n",
       " datetime.date(2017, 7, 5),\n",
       " datetime.date(2017, 7, 6),\n",
       " datetime.date(2017, 7, 7),\n",
       " datetime.date(2017, 7, 10),\n",
       " datetime.date(2017, 7, 11),\n",
       " datetime.date(2017, 7, 12),\n",
       " datetime.date(2017, 7, 13),\n",
       " datetime.date(2017, 7, 14),\n",
       " datetime.date(2017, 7, 17),\n",
       " datetime.date(2017, 7, 18),\n",
       " datetime.date(2017, 7, 19),\n",
       " datetime.date(2017, 7, 20),\n",
       " datetime.date(2017, 7, 21),\n",
       " datetime.date(2017, 7, 24),\n",
       " datetime.date(2017, 7, 25),\n",
       " datetime.date(2017, 7, 26),\n",
       " datetime.date(2017, 7, 27),\n",
       " datetime.date(2017, 7, 28),\n",
       " datetime.date(2017, 7, 31),\n",
       " datetime.date(2017, 8, 1),\n",
       " datetime.date(2017, 8, 2),\n",
       " datetime.date(2017, 8, 3),\n",
       " datetime.date(2017, 8, 4),\n",
       " datetime.date(2017, 8, 7),\n",
       " datetime.date(2017, 8, 8),\n",
       " datetime.date(2017, 8, 9),\n",
       " datetime.date(2017, 8, 10),\n",
       " datetime.date(2017, 8, 11),\n",
       " datetime.date(2017, 8, 14),\n",
       " datetime.date(2017, 8, 15),\n",
       " datetime.date(2017, 8, 16),\n",
       " datetime.date(2017, 8, 17),\n",
       " datetime.date(2017, 8, 18),\n",
       " datetime.date(2017, 8, 21),\n",
       " datetime.date(2017, 8, 22),\n",
       " datetime.date(2017, 8, 23),\n",
       " datetime.date(2017, 8, 24),\n",
       " datetime.date(2017, 8, 25),\n",
       " datetime.date(2017, 8, 28),\n",
       " datetime.date(2017, 8, 29),\n",
       " datetime.date(2017, 8, 30),\n",
       " datetime.date(2017, 8, 31),\n",
       " datetime.date(2017, 9, 1),\n",
       " datetime.date(2017, 9, 4),\n",
       " datetime.date(2017, 9, 5),\n",
       " datetime.date(2017, 9, 6),\n",
       " datetime.date(2017, 9, 7),\n",
       " datetime.date(2017, 9, 8),\n",
       " datetime.date(2017, 9, 11),\n",
       " datetime.date(2017, 9, 12),\n",
       " datetime.date(2017, 9, 13),\n",
       " datetime.date(2017, 9, 14),\n",
       " datetime.date(2017, 9, 15),\n",
       " datetime.date(2017, 9, 18),\n",
       " datetime.date(2017, 9, 19),\n",
       " datetime.date(2017, 9, 20),\n",
       " datetime.date(2017, 9, 21),\n",
       " datetime.date(2017, 9, 22),\n",
       " datetime.date(2017, 9, 25),\n",
       " datetime.date(2017, 9, 26),\n",
       " datetime.date(2017, 9, 27),\n",
       " datetime.date(2017, 9, 28),\n",
       " datetime.date(2017, 9, 29),\n",
       " datetime.date(2017, 10, 9),\n",
       " datetime.date(2017, 10, 10),\n",
       " datetime.date(2017, 10, 11),\n",
       " datetime.date(2017, 10, 12),\n",
       " datetime.date(2017, 10, 13),\n",
       " datetime.date(2017, 10, 16),\n",
       " datetime.date(2017, 10, 17),\n",
       " datetime.date(2017, 10, 18),\n",
       " datetime.date(2017, 10, 19),\n",
       " datetime.date(2017, 10, 20),\n",
       " datetime.date(2017, 10, 23),\n",
       " datetime.date(2017, 10, 24),\n",
       " datetime.date(2017, 10, 25),\n",
       " datetime.date(2017, 10, 26),\n",
       " datetime.date(2017, 10, 27),\n",
       " datetime.date(2017, 10, 30),\n",
       " datetime.date(2017, 10, 31),\n",
       " datetime.date(2017, 11, 1),\n",
       " datetime.date(2017, 11, 2),\n",
       " datetime.date(2017, 11, 3),\n",
       " datetime.date(2017, 11, 6),\n",
       " datetime.date(2017, 11, 7),\n",
       " datetime.date(2017, 11, 8),\n",
       " datetime.date(2017, 11, 9),\n",
       " datetime.date(2017, 11, 10),\n",
       " datetime.date(2017, 11, 13),\n",
       " datetime.date(2017, 11, 14),\n",
       " datetime.date(2017, 11, 15),\n",
       " datetime.date(2017, 11, 16),\n",
       " datetime.date(2017, 11, 17),\n",
       " datetime.date(2017, 11, 20),\n",
       " datetime.date(2017, 11, 21),\n",
       " datetime.date(2017, 11, 22),\n",
       " datetime.date(2017, 11, 23),\n",
       " datetime.date(2017, 11, 24),\n",
       " datetime.date(2017, 11, 27),\n",
       " datetime.date(2017, 11, 28),\n",
       " datetime.date(2017, 11, 29),\n",
       " datetime.date(2017, 11, 30),\n",
       " datetime.date(2017, 12, 1),\n",
       " datetime.date(2017, 12, 4),\n",
       " datetime.date(2017, 12, 5),\n",
       " datetime.date(2017, 12, 6),\n",
       " datetime.date(2017, 12, 7),\n",
       " datetime.date(2017, 12, 8),\n",
       " datetime.date(2017, 12, 11),\n",
       " datetime.date(2017, 12, 12),\n",
       " datetime.date(2017, 12, 13),\n",
       " datetime.date(2017, 12, 14),\n",
       " datetime.date(2017, 12, 15),\n",
       " datetime.date(2017, 12, 18),\n",
       " datetime.date(2017, 12, 19),\n",
       " datetime.date(2017, 12, 20),\n",
       " datetime.date(2017, 12, 21),\n",
       " datetime.date(2017, 12, 22),\n",
       " datetime.date(2017, 12, 25),\n",
       " datetime.date(2017, 12, 26),\n",
       " datetime.date(2017, 12, 27),\n",
       " datetime.date(2017, 12, 28),\n",
       " datetime.date(2017, 12, 29)]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_trading_dates(start_date=\"2017-01-01\", end_date=\"2018-01-01\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 获取财务数据\n",
    "q = query(fundamentals.income_statement.revenue,\n",
    "         fundamentals.income_statement.cost_of_goods_sold\n",
    "         ).filter(fundamentals.stockcode.in_(['000024.XSHE', '000001.XSHE']))\n",
    "fund = get_fundamentals(q, entry_date=\"2017-01-03\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "q = query(fundamentals.income_statement.revenue,\n",
    "         fundamentals.income_statement.cost_of_goods_sold\n",
    "         )\n",
    "fund = get_fundamentals(q, entry_date=\"2017-01-03\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>revenue</th>\n",
       "      <th>cost_of_goods_sold</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>001979.XSHE</th>\n",
       "      <td>3.6732e+10</td>\n",
       "      <td>2.35889e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002826.XSHE</th>\n",
       "      <td>3.11292e+08</td>\n",
       "      <td>9.31187e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002827.XSHE</th>\n",
       "      <td>2.70428e+08</td>\n",
       "      <td>1.25021e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>601155.XSHG</th>\n",
       "      <td>1.18426e+10</td>\n",
       "      <td>8.97842e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300498.XSHE</th>\n",
       "      <td>4.36444e+10</td>\n",
       "      <td>3.02151e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300585.XSHE</th>\n",
       "      <td>2.19624e+08</td>\n",
       "      <td>1.29523e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603058.XSHG</th>\n",
       "      <td>2.24039e+08</td>\n",
       "      <td>1.44297e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300577.XSHE</th>\n",
       "      <td>5.55571e+08</td>\n",
       "      <td>3.99143e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000166.XSHE</th>\n",
       "      <td>1.01637e+10</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603996.XSHG</th>\n",
       "      <td>2.88191e+09</td>\n",
       "      <td>2.65336e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603393.XSHG</th>\n",
       "      <td>5.72972e+08</td>\n",
       "      <td>3.93194e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600996.XSHG</th>\n",
       "      <td>1.62445e+09</td>\n",
       "      <td>8.66791e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300568.XSHE</th>\n",
       "      <td>3.82365e+08</td>\n",
       "      <td>1.49923e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300576.XSHE</th>\n",
       "      <td>2.27839e+08</td>\n",
       "      <td>1.45918e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300581.XSHE</th>\n",
       "      <td>1.14805e+08</td>\n",
       "      <td>6.02807e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300571.XSHE</th>\n",
       "      <td>2.95238e+08</td>\n",
       "      <td>2.20743e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>601020.XSHG</th>\n",
       "      <td>3.96376e+08</td>\n",
       "      <td>1.43095e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>601375.XSHG</th>\n",
       "      <td>1.59037e+09</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603823.XSHG</th>\n",
       "      <td>1.02379e+09</td>\n",
       "      <td>7.61081e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603218.XSHG</th>\n",
       "      <td>1.16585e+09</td>\n",
       "      <td>7.32142e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603928.XSHG</th>\n",
       "      <td>5.85467e+08</td>\n",
       "      <td>4.06292e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300567.XSHE</th>\n",
       "      <td>3.4082e+08</td>\n",
       "      <td>1.68428e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300566.XSHE</th>\n",
       "      <td>4.35857e+08</td>\n",
       "      <td>2.99561e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002837.XSHE</th>\n",
       "      <td>3.71557e+08</td>\n",
       "      <td>2.36487e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300575.XSHE</th>\n",
       "      <td>6.14457e+08</td>\n",
       "      <td>4.82882e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300408.XSHE</th>\n",
       "      <td>2.13872e+09</td>\n",
       "      <td>1.11796e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603298.XSHG</th>\n",
       "      <td>3.92145e+09</td>\n",
       "      <td>2.97349e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603577.XSHG</th>\n",
       "      <td>4.20733e+08</td>\n",
       "      <td>3.02541e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603990.XSHG</th>\n",
       "      <td>1.45576e+08</td>\n",
       "      <td>4.94007e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002831.XSHE</th>\n",
       "      <td>3.59227e+09</td>\n",
       "      <td>2.38913e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000034.XSHE</th>\n",
       "      <td>2.38223e+10</td>\n",
       "      <td>2.25555e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000033.XSHE</th>\n",
       "      <td>7.79698e+07</td>\n",
       "      <td>4.77279e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000032.XSHE</th>\n",
       "      <td>1.4957e+09</td>\n",
       "      <td>1.30267e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000031.XSHE</th>\n",
       "      <td>1.03816e+10</td>\n",
       "      <td>7.67516e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000030.XSHE</th>\n",
       "      <td>4.14789e+09</td>\n",
       "      <td>3.42987e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000029.XSHE</th>\n",
       "      <td>1.74446e+09</td>\n",
       "      <td>1.26649e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000028.XSHE</th>\n",
       "      <td>3.11092e+10</td>\n",
       "      <td>2.76537e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000027.XSHE</th>\n",
       "      <td>8.62511e+09</td>\n",
       "      <td>5.87144e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000026.XSHE</th>\n",
       "      <td>2.23414e+09</td>\n",
       "      <td>1.31976e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000025.XSHE</th>\n",
       "      <td>2.40749e+08</td>\n",
       "      <td>1.72714e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000020.XSHE</th>\n",
       "      <td>4.56933e+08</td>\n",
       "      <td>3.97033e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000023.XSHE</th>\n",
       "      <td>7.24006e+08</td>\n",
       "      <td>6.23848e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000022.XSHE</th>\n",
       "      <td>1.77543e+09</td>\n",
       "      <td>9.81828e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000021.XSHE</th>\n",
       "      <td>1.05705e+10</td>\n",
       "      <td>1.00034e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000019.XSHE</th>\n",
       "      <td>2.26388e+08</td>\n",
       "      <td>1.79782e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000018.XSHE</th>\n",
       "      <td>3.2336e+09</td>\n",
       "      <td>2.45278e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000017.XSHE</th>\n",
       "      <td>1.1995e+08</td>\n",
       "      <td>1.08398e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000016.XSHE</th>\n",
       "      <td>1.46172e+10</td>\n",
       "      <td>1.25512e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000005.XSHE</th>\n",
       "      <td>3.50497e+08</td>\n",
       "      <td>2.49051e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000004.XSHE</th>\n",
       "      <td>2.17568e+08</td>\n",
       "      <td>1.51215e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000002.XSHE</th>\n",
       "      <td>1.17055e+11</td>\n",
       "      <td>8.60036e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000001.XSHE</th>\n",
       "      <td>8.1968e+10</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000009.XSHE</th>\n",
       "      <td>4.21758e+09</td>\n",
       "      <td>2.82972e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000007.XSHE</th>\n",
       "      <td>2.82209e+07</td>\n",
       "      <td>8.42747e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000011.XSHE</th>\n",
       "      <td>5.29719e+08</td>\n",
       "      <td>4.25159e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000012.XSHE</th>\n",
       "      <td>6.52214e+09</td>\n",
       "      <td>4.73004e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000008.XSHE</th>\n",
       "      <td>1.00733e+09</td>\n",
       "      <td>4.9526e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000006.XSHE</th>\n",
       "      <td>1.14571e+09</td>\n",
       "      <td>6.72065e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000014.XSHE</th>\n",
       "      <td>1.7184e+08</td>\n",
       "      <td>1.40313e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000010.XSHE</th>\n",
       "      <td>7.08032e+08</td>\n",
       "      <td>5.08085e+08</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3037 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                 revenue cost_of_goods_sold\n",
       "001979.XSHE   3.6732e+10        2.35889e+10\n",
       "002826.XSHE  3.11292e+08        9.31187e+07\n",
       "002827.XSHE  2.70428e+08        1.25021e+08\n",
       "601155.XSHG  1.18426e+10        8.97842e+09\n",
       "300498.XSHE  4.36444e+10        3.02151e+10\n",
       "300585.XSHE  2.19624e+08        1.29523e+08\n",
       "603058.XSHG  2.24039e+08        1.44297e+08\n",
       "300577.XSHE  5.55571e+08        3.99143e+08\n",
       "000166.XSHE  1.01637e+10                NaN\n",
       "603996.XSHG  2.88191e+09        2.65336e+09\n",
       "603393.XSHG  5.72972e+08        3.93194e+08\n",
       "600996.XSHG  1.62445e+09        8.66791e+08\n",
       "300568.XSHE  3.82365e+08        1.49923e+08\n",
       "300576.XSHE  2.27839e+08        1.45918e+08\n",
       "300581.XSHE  1.14805e+08        6.02807e+07\n",
       "300571.XSHE  2.95238e+08        2.20743e+08\n",
       "601020.XSHG  3.96376e+08        1.43095e+08\n",
       "601375.XSHG  1.59037e+09                NaN\n",
       "603823.XSHG  1.02379e+09        7.61081e+08\n",
       "603218.XSHG  1.16585e+09        7.32142e+08\n",
       "603928.XSHG  5.85467e+08        4.06292e+08\n",
       "300567.XSHE   3.4082e+08        1.68428e+08\n",
       "300566.XSHE  4.35857e+08        2.99561e+08\n",
       "002837.XSHE  3.71557e+08        2.36487e+08\n",
       "300575.XSHE  6.14457e+08        4.82882e+08\n",
       "300408.XSHE  2.13872e+09        1.11796e+09\n",
       "603298.XSHG  3.92145e+09        2.97349e+09\n",
       "603577.XSHG  4.20733e+08        3.02541e+08\n",
       "603990.XSHG  1.45576e+08        4.94007e+07\n",
       "002831.XSHE  3.59227e+09        2.38913e+09\n",
       "...                  ...                ...\n",
       "000034.XSHE  2.38223e+10        2.25555e+10\n",
       "000033.XSHE  7.79698e+07        4.77279e+07\n",
       "000032.XSHE   1.4957e+09        1.30267e+09\n",
       "000031.XSHE  1.03816e+10        7.67516e+09\n",
       "000030.XSHE  4.14789e+09        3.42987e+09\n",
       "000029.XSHE  1.74446e+09        1.26649e+09\n",
       "000028.XSHE  3.11092e+10        2.76537e+10\n",
       "000027.XSHE  8.62511e+09        5.87144e+09\n",
       "000026.XSHE  2.23414e+09        1.31976e+09\n",
       "000025.XSHE  2.40749e+08        1.72714e+08\n",
       "000020.XSHE  4.56933e+08        3.97033e+08\n",
       "000023.XSHE  7.24006e+08        6.23848e+08\n",
       "000022.XSHE  1.77543e+09        9.81828e+08\n",
       "000021.XSHE  1.05705e+10        1.00034e+10\n",
       "000019.XSHE  2.26388e+08        1.79782e+08\n",
       "000018.XSHE   3.2336e+09        2.45278e+09\n",
       "000017.XSHE   1.1995e+08        1.08398e+08\n",
       "000016.XSHE  1.46172e+10        1.25512e+10\n",
       "000005.XSHE  3.50497e+08        2.49051e+08\n",
       "000004.XSHE  2.17568e+08        1.51215e+08\n",
       "000002.XSHE  1.17055e+11        8.60036e+10\n",
       "000001.XSHE   8.1968e+10                NaN\n",
       "000009.XSHE  4.21758e+09        2.82972e+09\n",
       "000007.XSHE  2.82209e+07        8.42747e+06\n",
       "000011.XSHE  5.29719e+08        4.25159e+08\n",
       "000012.XSHE  6.52214e+09        4.73004e+09\n",
       "000008.XSHE  1.00733e+09         4.9526e+08\n",
       "000006.XSHE  1.14571e+09        6.72065e+08\n",
       "000014.XSHE   1.7184e+08        1.40313e+08\n",
       "000010.XSHE  7.08032e+08        5.08085e+08\n",
       "\n",
       "[3037 rows x 2 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 换成截面数据\n",
    "fund[:, 0, :] # 截面数据，DataFrame，股票代号、列指标名字"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 对pe_ration进行去极值\n",
    "fund = get_fundamentals(query(fundamentals.eod_derivative_indicator.pe_ratio), entry_date=\"20180102\")[:, 0, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "fund['pe_ration_winsorize'] = winsorize(fund['pe_ratio'], limits=0.025)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f8f25fe82e8>"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhEAAAFeCAYAAAA7eE02AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl8HHXh//HXZ3P2SHrfLW3pRUtp\nofRUBAQEAU/ky/FDFL6KiCjiVxREERQFUQG/8pVL5RZBDgEBAUEuoSdt6X3R+0jaNM2dbPb4/P7Y\nTXZms9lkkyY7u3k/H4+0m52Z3dnZycx7PtcYay0iIiIiqfKlewVEREQkMylEiIiISIcoRIiIiEiH\nKESIiIhIhyhEiIiISIcoRIiIiEiHKESIiIhIhyhEiIiISIcoRIiIiEiHKESIiIhIhyhEiIiISIfk\npnsFDhdjjAFGAtXpXhcREZEMVATstSncVCtrQgSRALE73SshIiKSwUYDe9o7czaFiGqAXbt2UVxc\nnO51ERERyRhVVVWMGTMGUizNz6YQAUBxcbFChIiISDdQw0oRERHpEIUIERER6RCFCBEREekQhQgR\nERHpEIUIERER6RCFCBEREekQhQgRERHpEIUIERER6RCFCBEREekQhYgMkMK9UERERLqNQoTHBUJh\nzvjdO1z+6LJ0r4qIiIhL1t07I9ss3V7OptIaNpXWpHtVREREXFQSISIiIh2iECEiIiIdknKIMMZM\nMsa8YoypNsbsMcbcYozxRafNM8YsN8Y0GGNWGWM+Ebfsj4wxJcaYWmPMX40x/RzThhlj/mGMqTPG\n7DbGXNH5jyciIiJdpSMlEU8CVcAM4P8BlwNfM8b0Bf4BvBGd9jjwD2PMYABjzPnAdcDXgAXAcOBu\nx+s+BOQDc4ErgV8bY07vwPqJiIhIN0gpRBhjDDAdeMhau81a+zawEDgG+AxQAPzIWrvJWvsrYD9w\nUXTxS4HHrLUvWWtXAT8GLjDGDDTGjAA+DfzEWrvGWvs88FdApREiIiIelVKIsJEBC14Gvm6MyTfG\nzAQ+AbwAHAUstdYGHYu8BxwdfXwUkcDRZAkQjj4/BWgEPmhl2RaMMQXGmOKmH6Aolc8iIiIindOR\n6oyvAsOAbURO9F+11r4ODAEOxc1bBoyIPnZNj4aNiuj0IUCVtTbcyrKJ/AiodPzs7sBnERERkQ7q\n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\n",
      "text/plain": [
       "<Figure size 600x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fund['pe_ratio'][:500].plot()\n",
    "fund['pe_ration_winsorize'][:500].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def quantile(factor,up,down): \n",
    "  \"\"\"自实现分位数去极值\"\"\"\n",
    "  up_scale = np.percentile(factor, up)   \n",
    "  down_scale = np.percentile(factor, down)   \n",
    "  factor = np.where(factor > up_scale, up_scale, factor)   \n",
    "  factor = np.where(factor < down_scale, down_scale, factor)  \n",
    "  return factor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([60.9084, 28.729800000000001, 38.923499999999997, ..., 104.4151,\n",
       "       203.64580000000001, 22.5595], dtype=object)"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "quantile(fund['pe_ratio'], 97.5, 2.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def mad(factor):\n",
    "  \"\"\"\n",
    "  实现3倍中位数绝对偏差去极值\n",
    "  \"\"\"\n",
    "  # 1、找出因子的中位数 median\n",
    "  me = np.median(factor)\n",
    "  \n",
    "  # 2、得到每个因子值与中位数的绝对偏差值 |x – median|\n",
    "  # 3、得到绝对偏差值的中位数， MAD，median(|x – median|)\n",
    "  # np.median(abs(factor - me))就是MAD\n",
    "  mad = np.median(abs(factor - me))\n",
    "  \n",
    "  # 4、计算MAD_e = 1.4826*MAD，然后确定参数 n，做出调整\n",
    "  # 求出3倍中位数上下限制\n",
    "  up = me + (3 * 1.4826 * mad)\n",
    "  down = me - (3 * 1.4826 * mad)\n",
    "  \n",
    "  # 利用3倍中位数的值去极值\n",
    "  factor = np.where(factor > up, up, factor)\n",
    "  factor = np.where(factor < down, down, factor)\n",
    "  return factor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 对pe_ratio去极值\n",
    "fund['pe_ratio_3mad'] = mad(fund['pe_ratio'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f8f25fa04a8>"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n/0WnjLSY38eNGjRnNCP85pdW88hXa8kvrQ45wXvaqNOj8z2KGzmBW2v5eMl2NhaUR1y+yzGSoala\n5PB93uv3h3WsbJsTeqGj2d0bNiJkZzs0n6VkiFi+raTRncbJGQLiOaHtKt+zg+2MFiKcHSvDOiFe\n9uJ8Sqq8XPHygibfrz3OLX6/5Y73l/PRkujtac7OlHUH0JCdN8L2aFgT4Z6TZbhod55sTHkMzRnR\nQmd5G0xK8+Hi7fUnM2stf3t9EVc2YypeZzkranzMWL+LLYWVzFi/C3/YZDrQeJ+IPVMCu6cmwhnk\n4pnroLk1Ec5jUVZ68h1yP1m6naVbi0MeC695aE6/hmveXFQ/OmB78Z6TW1v1FSiq3HNyLanyRtzX\np60p4NKX5nPiv7+O+BrO41ju7goufHZ2o6Mbwjvn+8PmiWjqwiJeziGbBeXV7HAEh7ryh9fEtOZo\nxOTbo5swb1MhZzw0nUtfbLo9yFmdXlclG8tMg87q+50l0ULEntcsq/GG/MNFu5FVIo6v364rCLkb\nI0Q+QJRGOIA6d9780moWbN7N6f+ZzpyNhUDgStYpvI+Em4Te+Kx5nE0YTTVnRLtCWLuz9WfXu/zl\n+Uz6biMA+WXVvDU/l/cWbWNLYWXU9XaW7inn9qKqkM7GFbW+Bldndf07GpuZ0k0zVjrH7RdVxD4l\ncUUzZ211XmzUuHifj2TRliL++OJ8fvTwNyGPNxyd0fRx8+tV+QB8s7aA7cV79rv2aM7w+W3Ev9H8\nTbvrf47U1OTc/79YuZOvVuXzzoKtETvdhx/fwmsF2mqeCGeIyC+pDglodR15i8Iuqp39sFoq5ULE\na3MCHaS+W7crajq21oa05dYlsx3FoQf3aNWUzj/e4twi/vraQlbnNbzxkrMc1jZ+c6bwnTiePhDW\nWm58Zwl/emVBXLUrubsbnlQizfkeXpVrrQ3peb6ztJrLXprPiu0l/PLxGUDDpB6tJmLepkIumjSH\nzU20Q0ZjbfwjQJxr+a3lk6U7WLmjJOrrhbR/Og4eGwvK67dXXRNapJqauqvUVTtKGn2P/NJqPlqy\nvcmwG2m0wZvBocgbC/Zs03UF0QOLMxxvL64MOeCXVXkbHJjrphdudJ6IsL95W/XMh8AJINpQW+cV\ncH6Zs1axqllznzhrYaKFCOfFRrJNSjXXcZJ1lj08NFTV+nhp1ibu/GB5s447zhNdrCHiq5U7+ecn\n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\nh8PhcDgcZeF/gejd/s0IAccAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 600x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fund['pe_ratio'][:500].plot()\n",
    "fund['pe_ratio_3mad'][:500].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def threesigma(factor):\n",
    "  \"\"\"3sigma方法去极值\n",
    "  \"\"\"\n",
    "  # 计算平均值和标准差\n",
    "  mean = factor.mean()\n",
    "  std = factor.std()\n",
    "  \n",
    "  # 计算上下限的数据\n",
    "  up = mean + 3 * std\n",
    "  \n",
    "  down = mean - 3 * std\n",
    "  \n",
    "  # 替换极值\n",
    "  factor = np.where(factor > up, up, factor)\n",
    "  factor = np.where(factor < down, down, factor)\n",
    "  \n",
    "  return factor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "fund['pe_ratio_3sigma'] = threesigma(fund['pe_ratio'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f8f25e8c080>"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 600x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fund['pe_ratio'][:500].plot()\n",
    "fund['pe_ratio_3sigma'][:500].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 2、标准化处理\n",
    "std = StandardScaler()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/envs/ricequant/lib/python3.5/site-packages/sklearn/utils/validation.py:429: DataConversionWarning: Data with input dtype object was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, _DataConversionWarning)\n",
      "/opt/conda/envs/ricequant/lib/python3.5/site-packages/sklearn/preprocessing/data.py:586: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.\n",
      "  warnings.warn(DEPRECATION_MSG_1D, DeprecationWarning)\n",
      "/opt/conda/envs/ricequant/lib/python3.5/site-packages/sklearn/preprocessing/data.py:649: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.\n",
      "  warnings.warn(DEPRECATION_MSG_1D, DeprecationWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([ 0.61154875, -0.19356139,  0.06148548, ...,  1.70008851,\n",
       "        1.82699859, -0.3479426 ])"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "std.fit_transform(fund['pe_ratio_3mad'].dropna())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def stand(factor):\n",
    "  \"\"\"自实现标准化\n",
    "  \"\"\"\n",
    "  mean = factor.mean()\n",
    "  std = factor.std()\n",
    "  \n",
    "  return (factor - mean ) / std"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "fund['pe_ration_stand'] = stand(fund['pe_ratio_3mad'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pe_ratio</th>\n",
       "      <th>pe_ration_winsorize</th>\n",
       "      <th>pe_ratio_3mad</th>\n",
       "      <th>pe_ratio_3sigma</th>\n",
       "      <th>pe_ration_stand</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>002893.XSHE</th>\n",
       "      <td>60.9084</td>\n",
       "      <td>60.9084</td>\n",
       "      <td>60.9084</td>\n",
       "      <td>60.9084</td>\n",
       "      <td>0.611461</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600977.XSHG</th>\n",
       "      <td>28.7298</td>\n",
       "      <td>28.7298</td>\n",
       "      <td>28.7298</td>\n",
       "      <td>28.7298</td>\n",
       "      <td>-0.193533</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002074.XSHE</th>\n",
       "      <td>38.9235</td>\n",
       "      <td>38.9235</td>\n",
       "      <td>38.9235</td>\n",
       "      <td>38.9235</td>\n",
       "      <td>0.0614766</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002184.XSHE</th>\n",
       "      <td>189.209</td>\n",
       "      <td>189.209</td>\n",
       "      <td>109.487</td>\n",
       "      <td>189.209</td>\n",
       "      <td>1.82674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603042.XSHG</th>\n",
       "      <td>64.483</td>\n",
       "      <td>64.483</td>\n",
       "      <td>64.483</td>\n",
       "      <td>64.483</td>\n",
       "      <td>0.700884</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002075.XSHE</th>\n",
       "      <td>29.9032</td>\n",
       "      <td>29.9032</td>\n",
       "      <td>29.9032</td>\n",
       "      <td>29.9032</td>\n",
       "      <td>-0.164179</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002182.XSHE</th>\n",
       "      <td>43.9879</td>\n",
       "      <td>43.9879</td>\n",
       "      <td>43.9879</td>\n",
       "      <td>43.9879</td>\n",
       "      <td>0.18817</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002183.XSHE</th>\n",
       "      <td>22.7842</td>\n",
       "      <td>22.7842</td>\n",
       "      <td>22.7842</td>\n",
       "      <td>22.7842</td>\n",
       "      <td>-0.342271</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002416.XSHE</th>\n",
       "      <td>17.1886</td>\n",
       "      <td>17.1886</td>\n",
       "      <td>17.1886</td>\n",
       "      <td>17.1886</td>\n",
       "      <td>-0.482253</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300477.XSHE</th>\n",
       "      <td>40.505</td>\n",
       "      <td>40.505</td>\n",
       "      <td>40.505</td>\n",
       "      <td>40.505</td>\n",
       "      <td>0.10104</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600017.XSHG</th>\n",
       "      <td>21.4169</td>\n",
       "      <td>21.4169</td>\n",
       "      <td>21.4169</td>\n",
       "      <td>21.4169</td>\n",
       "      <td>-0.376476</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002411.XSHE</th>\n",
       "      <td>48.8637</td>\n",
       "      <td>48.8637</td>\n",
       "      <td>48.8637</td>\n",
       "      <td>48.8637</td>\n",
       "      <td>0.310145</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>601808.XSHG</th>\n",
       "      <td>4.431</td>\n",
       "      <td>4.431</td>\n",
       "      <td>4.431</td>\n",
       "      <td>4.431</td>\n",
       "      <td>-0.801403</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>601588.XSHG</th>\n",
       "      <td>11.5825</td>\n",
       "      <td>11.5825</td>\n",
       "      <td>11.5825</td>\n",
       "      <td>11.5825</td>\n",
       "      <td>-0.622498</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300484.XSHE</th>\n",
       "      <td>44.4912</td>\n",
       "      <td>44.4912</td>\n",
       "      <td>44.4912</td>\n",
       "      <td>44.4912</td>\n",
       "      <td>0.200761</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002178.XSHE</th>\n",
       "      <td>1674.81</td>\n",
       "      <td>543.661</td>\n",
       "      <td>109.487</td>\n",
       "      <td>1674.81</td>\n",
       "      <td>1.82674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300555.XSHE</th>\n",
       "      <td>67.0313</td>\n",
       "      <td>67.0313</td>\n",
       "      <td>67.0313</td>\n",
       "      <td>67.0313</td>\n",
       "      <td>0.764634</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300547.XSHE</th>\n",
       "      <td>20.7472</td>\n",
       "      <td>20.7472</td>\n",
       "      <td>20.7472</td>\n",
       "      <td>20.7472</td>\n",
       "      <td>-0.39323</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300197.XSHE</th>\n",
       "      <td>18.5484</td>\n",
       "      <td>18.5484</td>\n",
       "      <td>18.5484</td>\n",
       "      <td>18.5484</td>\n",
       "      <td>-0.448236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300193.XSHE</th>\n",
       "      <td>20.5606</td>\n",
       "      <td>20.5606</td>\n",
       "      <td>20.5606</td>\n",
       "      <td>20.5606</td>\n",
       "      <td>-0.397898</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603019.XSHG</th>\n",
       "      <td>66.7876</td>\n",
       "      <td>66.7876</td>\n",
       "      <td>66.7876</td>\n",
       "      <td>66.7876</td>\n",
       "      <td>0.758537</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603300.XSHG</th>\n",
       "      <td>327.749</td>\n",
       "      <td>327.749</td>\n",
       "      <td>109.487</td>\n",
       "      <td>327.749</td>\n",
       "      <td>1.82674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002180.XSHE</th>\n",
       "      <td>15.8876</td>\n",
       "      <td>15.8876</td>\n",
       "      <td>15.8876</td>\n",
       "      <td>15.8876</td>\n",
       "      <td>-0.5148</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>601886.XSHG</th>\n",
       "      <td>17.4291</td>\n",
       "      <td>17.4291</td>\n",
       "      <td>17.4291</td>\n",
       "      <td>17.4291</td>\n",
       "      <td>-0.476237</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002073.XSHE</th>\n",
       "      <td>7.8712</td>\n",
       "      <td>7.8712</td>\n",
       "      <td>7.8712</td>\n",
       "      <td>7.8712</td>\n",
       "      <td>-0.715341</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300061.XSHE</th>\n",
       "      <td>17.3925</td>\n",
       "      <td>17.3925</td>\n",
       "      <td>17.3925</td>\n",
       "      <td>17.3925</td>\n",
       "      <td>-0.477152</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002179.XSHE</th>\n",
       "      <td>35.5506</td>\n",
       "      <td>35.5506</td>\n",
       "      <td>35.5506</td>\n",
       "      <td>35.5506</td>\n",
       "      <td>-0.0229013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300284.XSHE</th>\n",
       "      <td>17.3619</td>\n",
       "      <td>17.3619</td>\n",
       "      <td>17.3619</td>\n",
       "      <td>17.3619</td>\n",
       "      <td>-0.477918</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002072.XSHE</th>\n",
       "      <td>-60.1403</td>\n",
       "      <td>-60.1403</td>\n",
       "      <td>-49.1362</td>\n",
       "      <td>-60.1403</td>\n",
       "      <td>-2.14146</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300526.XSHE</th>\n",
       "      <td>61.8497</td>\n",
       "      <td>61.8497</td>\n",
       "      <td>61.8497</td>\n",
       "      <td>61.8497</td>\n",
       "      <td>0.635009</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002444.XSHE</th>\n",
       "      <td>31.582</td>\n",
       "      <td>31.582</td>\n",
       "      <td>31.582</td>\n",
       "      <td>31.582</td>\n",
       "      <td>-0.122182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>601999.XSHG</th>\n",
       "      <td>21.9545</td>\n",
       "      <td>21.9545</td>\n",
       "      <td>21.9545</td>\n",
       "      <td>21.9545</td>\n",
       "      <td>-0.363027</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300173.XSHE</th>\n",
       "      <td>77.2214</td>\n",
       "      <td>77.2214</td>\n",
       "      <td>77.2214</td>\n",
       "      <td>77.2214</td>\n",
       "      <td>1.01955</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600686.XSHG</th>\n",
       "      <td>4.7161</td>\n",
       "      <td>4.7161</td>\n",
       "      <td>4.7161</td>\n",
       "      <td>4.7161</td>\n",
       "      <td>-0.794271</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002093.XSHE</th>\n",
       "      <td>38.6285</td>\n",
       "      <td>38.6285</td>\n",
       "      <td>38.6285</td>\n",
       "      <td>38.6285</td>\n",
       "      <td>0.0540968</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600315.XSHG</th>\n",
       "      <td>41.9093</td>\n",
       "      <td>41.9093</td>\n",
       "      <td>41.9093</td>\n",
       "      <td>41.9093</td>\n",
       "      <td>0.136171</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600055.XSHG</th>\n",
       "      <td>58.3986</td>\n",
       "      <td>58.3986</td>\n",
       "      <td>58.3986</td>\n",
       "      <td>58.3986</td>\n",
       "      <td>0.548674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000571.XSHE</th>\n",
       "      <td>469.476</td>\n",
       "      <td>469.476</td>\n",
       "      <td>109.487</td>\n",
       "      <td>469.476</td>\n",
       "      <td>1.82674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000717.XSHE</th>\n",
       "      <td>4.5675</td>\n",
       "      <td>4.5675</td>\n",
       "      <td>4.5675</td>\n",
       "      <td>4.5675</td>\n",
       "      <td>-0.797988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000893.XSHE</th>\n",
       "      <td>-1.4607</td>\n",
       "      <td>-1.4607</td>\n",
       "      <td>-1.4607</td>\n",
       "      <td>-1.4607</td>\n",
       "      <td>-0.948792</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603678.XSHG</th>\n",
       "      <td>44.8997</td>\n",
       "      <td>44.8997</td>\n",
       "      <td>44.8997</td>\n",
       "      <td>44.8997</td>\n",
       "      <td>0.21098</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603040.XSHG</th>\n",
       "      <td>26.545</td>\n",
       "      <td>26.545</td>\n",
       "      <td>26.545</td>\n",
       "      <td>26.545</td>\n",
       "      <td>-0.248189</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603607.XSHG</th>\n",
       "      <td>37.8562</td>\n",
       "      <td>37.8562</td>\n",
       "      <td>37.8562</td>\n",
       "      <td>37.8562</td>\n",
       "      <td>0.0347766</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002723.XSHE</th>\n",
       "      <td>447.017</td>\n",
       "      <td>447.017</td>\n",
       "      <td>109.487</td>\n",
       "      <td>447.017</td>\n",
       "      <td>1.82674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300382.XSHE</th>\n",
       "      <td>28.9685</td>\n",
       "      <td>28.9685</td>\n",
       "      <td>28.9685</td>\n",
       "      <td>28.9685</td>\n",
       "      <td>-0.187562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300400.XSHE</th>\n",
       "      <td>29.8216</td>\n",
       "      <td>29.8216</td>\n",
       "      <td>29.8216</td>\n",
       "      <td>29.8216</td>\n",
       "      <td>-0.166221</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300320.XSHE</th>\n",
       "      <td>34.5819</td>\n",
       "      <td>34.5819</td>\n",
       "      <td>34.5819</td>\n",
       "      <td>34.5819</td>\n",
       "      <td>-0.0471348</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002592.XSHE</th>\n",
       "      <td>44.5782</td>\n",
       "      <td>44.5782</td>\n",
       "      <td>44.5782</td>\n",
       "      <td>44.5782</td>\n",
       "      <td>0.202937</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300110.XSHE</th>\n",
       "      <td>278.141</td>\n",
       "      <td>278.141</td>\n",
       "      <td>109.487</td>\n",
       "      <td>278.141</td>\n",
       "      <td>1.82674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600998.XSHG</th>\n",
       "      <td>18.0026</td>\n",
       "      <td>18.0026</td>\n",
       "      <td>18.0026</td>\n",
       "      <td>18.0026</td>\n",
       "      <td>-0.46189</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300101.XSHE</th>\n",
       "      <td>350.93</td>\n",
       "      <td>350.93</td>\n",
       "      <td>109.487</td>\n",
       "      <td>350.93</td>\n",
       "      <td>1.82674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002197.XSHE</th>\n",
       "      <td>202.689</td>\n",
       "      <td>202.689</td>\n",
       "      <td>109.487</td>\n",
       "      <td>202.689</td>\n",
       "      <td>1.82674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002441.XSHE</th>\n",
       "      <td>21.1892</td>\n",
       "      <td>21.1892</td>\n",
       "      <td>21.1892</td>\n",
       "      <td>21.1892</td>\n",
       "      <td>-0.382172</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600685.XSHG</th>\n",
       "      <td>361.066</td>\n",
       "      <td>361.066</td>\n",
       "      <td>109.487</td>\n",
       "      <td>361.066</td>\n",
       "      <td>1.82674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002099.XSHE</th>\n",
       "      <td>20.2605</td>\n",
       "      <td>20.2605</td>\n",
       "      <td>20.2605</td>\n",
       "      <td>20.2605</td>\n",
       "      <td>-0.405405</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000715.XSHE</th>\n",
       "      <td>33.2105</td>\n",
       "      <td>33.2105</td>\n",
       "      <td>33.2105</td>\n",
       "      <td>33.2105</td>\n",
       "      <td>-0.0814423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000892.XSHE</th>\n",
       "      <td>13.3322</td>\n",
       "      <td>13.3322</td>\n",
       "      <td>13.3322</td>\n",
       "      <td>13.3322</td>\n",
       "      <td>-0.578727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000570.XSHE</th>\n",
       "      <td>104.415</td>\n",
       "      <td>104.415</td>\n",
       "      <td>104.415</td>\n",
       "      <td>104.415</td>\n",
       "      <td>1.69984</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600316.XSHG</th>\n",
       "      <td>203.646</td>\n",
       "      <td>203.646</td>\n",
       "      <td>109.487</td>\n",
       "      <td>203.646</td>\n",
       "      <td>1.82674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600054.XSHG</th>\n",
       "      <td>22.5595</td>\n",
       "      <td>22.5595</td>\n",
       "      <td>22.5595</td>\n",
       "      <td>22.5595</td>\n",
       "      <td>-0.347892</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3469 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            pe_ratio pe_ration_winsorize pe_ratio_3mad pe_ratio_3sigma  \\\n",
       "002893.XSHE  60.9084             60.9084       60.9084         60.9084   \n",
       "600977.XSHG  28.7298             28.7298       28.7298         28.7298   \n",
       "002074.XSHE  38.9235             38.9235       38.9235         38.9235   \n",
       "002184.XSHE  189.209             189.209       109.487         189.209   \n",
       "603042.XSHG   64.483              64.483        64.483          64.483   \n",
       "002075.XSHE  29.9032             29.9032       29.9032         29.9032   \n",
       "002182.XSHE  43.9879             43.9879       43.9879         43.9879   \n",
       "002183.XSHE  22.7842             22.7842       22.7842         22.7842   \n",
       "002416.XSHE  17.1886             17.1886       17.1886         17.1886   \n",
       "300477.XSHE   40.505              40.505        40.505          40.505   \n",
       "600017.XSHG  21.4169             21.4169       21.4169         21.4169   \n",
       "002411.XSHE  48.8637             48.8637       48.8637         48.8637   \n",
       "601808.XSHG    4.431               4.431         4.431           4.431   \n",
       "601588.XSHG  11.5825             11.5825       11.5825         11.5825   \n",
       "300484.XSHE  44.4912             44.4912       44.4912         44.4912   \n",
       "002178.XSHE  1674.81             543.661       109.487         1674.81   \n",
       "300555.XSHE  67.0313             67.0313       67.0313         67.0313   \n",
       "300547.XSHE  20.7472             20.7472       20.7472         20.7472   \n",
       "300197.XSHE  18.5484             18.5484       18.5484         18.5484   \n",
       "300193.XSHE  20.5606             20.5606       20.5606         20.5606   \n",
       "603019.XSHG  66.7876             66.7876       66.7876         66.7876   \n",
       "603300.XSHG  327.749             327.749       109.487         327.749   \n",
       "002180.XSHE  15.8876             15.8876       15.8876         15.8876   \n",
       "601886.XSHG  17.4291             17.4291       17.4291         17.4291   \n",
       "002073.XSHE   7.8712              7.8712        7.8712          7.8712   \n",
       "300061.XSHE  17.3925             17.3925       17.3925         17.3925   \n",
       "002179.XSHE  35.5506             35.5506       35.5506         35.5506   \n",
       "300284.XSHE  17.3619             17.3619       17.3619         17.3619   \n",
       "002072.XSHE -60.1403            -60.1403      -49.1362        -60.1403   \n",
       "300526.XSHE  61.8497             61.8497       61.8497         61.8497   \n",
       "...              ...                 ...           ...             ...   \n",
       "002444.XSHE   31.582              31.582        31.582          31.582   \n",
       "601999.XSHG  21.9545             21.9545       21.9545         21.9545   \n",
       "300173.XSHE  77.2214             77.2214       77.2214         77.2214   \n",
       "600686.XSHG   4.7161              4.7161        4.7161          4.7161   \n",
       "002093.XSHE  38.6285             38.6285       38.6285         38.6285   \n",
       "600315.XSHG  41.9093             41.9093       41.9093         41.9093   \n",
       "600055.XSHG  58.3986             58.3986       58.3986         58.3986   \n",
       "000571.XSHE  469.476             469.476       109.487         469.476   \n",
       "000717.XSHE   4.5675              4.5675        4.5675          4.5675   \n",
       "000893.XSHE  -1.4607             -1.4607       -1.4607         -1.4607   \n",
       "603678.XSHG  44.8997             44.8997       44.8997         44.8997   \n",
       "603040.XSHG   26.545              26.545        26.545          26.545   \n",
       "603607.XSHG  37.8562             37.8562       37.8562         37.8562   \n",
       "002723.XSHE  447.017             447.017       109.487         447.017   \n",
       "300382.XSHE  28.9685             28.9685       28.9685         28.9685   \n",
       "300400.XSHE  29.8216             29.8216       29.8216         29.8216   \n",
       "300320.XSHE  34.5819             34.5819       34.5819         34.5819   \n",
       "002592.XSHE  44.5782             44.5782       44.5782         44.5782   \n",
       "300110.XSHE  278.141             278.141       109.487         278.141   \n",
       "600998.XSHG  18.0026             18.0026       18.0026         18.0026   \n",
       "300101.XSHE   350.93              350.93       109.487          350.93   \n",
       "002197.XSHE  202.689             202.689       109.487         202.689   \n",
       "002441.XSHE  21.1892             21.1892       21.1892         21.1892   \n",
       "600685.XSHG  361.066             361.066       109.487         361.066   \n",
       "002099.XSHE  20.2605             20.2605       20.2605         20.2605   \n",
       "000715.XSHE  33.2105             33.2105       33.2105         33.2105   \n",
       "000892.XSHE  13.3322             13.3322       13.3322         13.3322   \n",
       "000570.XSHE  104.415             104.415       104.415         104.415   \n",
       "600316.XSHG  203.646             203.646       109.487         203.646   \n",
       "600054.XSHG  22.5595             22.5595       22.5595         22.5595   \n",
       "\n",
       "            pe_ration_stand  \n",
       "002893.XSHE        0.611461  \n",
       "600977.XSHG       -0.193533  \n",
       "002074.XSHE       0.0614766  \n",
       "002184.XSHE         1.82674  \n",
       "603042.XSHG        0.700884  \n",
       "002075.XSHE       -0.164179  \n",
       "002182.XSHE         0.18817  \n",
       "002183.XSHE       -0.342271  \n",
       "002416.XSHE       -0.482253  \n",
       "300477.XSHE         0.10104  \n",
       "600017.XSHG       -0.376476  \n",
       "002411.XSHE        0.310145  \n",
       "601808.XSHG       -0.801403  \n",
       "601588.XSHG       -0.622498  \n",
       "300484.XSHE        0.200761  \n",
       "002178.XSHE         1.82674  \n",
       "300555.XSHE        0.764634  \n",
       "300547.XSHE        -0.39323  \n",
       "300197.XSHE       -0.448236  \n",
       "300193.XSHE       -0.397898  \n",
       "603019.XSHG        0.758537  \n",
       "603300.XSHG         1.82674  \n",
       "002180.XSHE         -0.5148  \n",
       "601886.XSHG       -0.476237  \n",
       "002073.XSHE       -0.715341  \n",
       "300061.XSHE       -0.477152  \n",
       "002179.XSHE      -0.0229013  \n",
       "300284.XSHE       -0.477918  \n",
       "002072.XSHE        -2.14146  \n",
       "300526.XSHE        0.635009  \n",
       "...                     ...  \n",
       "002444.XSHE       -0.122182  \n",
       "601999.XSHG       -0.363027  \n",
       "300173.XSHE         1.01955  \n",
       "600686.XSHG       -0.794271  \n",
       "002093.XSHE       0.0540968  \n",
       "600315.XSHG        0.136171  \n",
       "600055.XSHG        0.548674  \n",
       "000571.XSHE         1.82674  \n",
       "000717.XSHE       -0.797988  \n",
       "000893.XSHE       -0.948792  \n",
       "603678.XSHG         0.21098  \n",
       "603040.XSHG       -0.248189  \n",
       "603607.XSHG       0.0347766  \n",
       "002723.XSHE         1.82674  \n",
       "300382.XSHE       -0.187562  \n",
       "300400.XSHE       -0.166221  \n",
       "300320.XSHE      -0.0471348  \n",
       "002592.XSHE        0.202937  \n",
       "300110.XSHE         1.82674  \n",
       "600998.XSHG        -0.46189  \n",
       "300101.XSHE         1.82674  \n",
       "002197.XSHE         1.82674  \n",
       "002441.XSHE       -0.382172  \n",
       "600685.XSHG         1.82674  \n",
       "002099.XSHE       -0.405405  \n",
       "000715.XSHE      -0.0814423  \n",
       "000892.XSHE       -0.578727  \n",
       "000570.XSHE         1.69984  \n",
       "600316.XSHG         1.82674  \n",
       "600054.XSHG       -0.347892  \n",
       "\n",
       "[3469 rows x 5 columns]"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fund"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 获取两个因子数据\n",
    "# 对目标值因子-市净率进行去极值、标准化处理\n",
    "# 建立市值与市净率回归方程\n",
    "# 通过回归系数，预测新的因子结果y_predict\n",
    "# 求出市净率与y_predict的偏差即为新的因子值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 1、 获取数据\n",
    "q = query(fundamentals.eod_derivative_indicator.pb_ratio,\n",
    "         fundamentals.eod_derivative_indicator.market_cap)\n",
    "\n",
    "fund = get_fundamentals(q, entry_date=\"2018-01-03\")[:, 0, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 2、对因子数据进行处理,3倍中位数、stand\n",
    "fund['pb_ratio'] = mad(fund['pb_ratio'])\n",
    "fund['pb_ratio'] = stand(fund['pb_ratio'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 对于市值因子可以选择处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/envs/ricequant/bin/rq-research-kernel:2: FutureWarning: reshape is deprecated and will raise in a subsequent release. Please use .values.reshape(...) instead\n",
      "  \n"
     ]
    }
   ],
   "source": [
    "# 3、确定建立回归方程特征值和目标值\n",
    "# 传入训练的特征值是二维的形状\n",
    "x = fund['market_cap'].reshape(-1, 1)\n",
    "y = fund['pb_ratio']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 4、利用线性回归进行预测\n",
    "lr = LinearRegression()\n",
    "lr.fit(x, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 5、得出每个预测值，让因子的真实值-预测值得出的误差，就为我们中性化处理之后的结果\n",
    "y_predict = lr.predict(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "res = y - y_predict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "fund['pb_ratio'] = res"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pb_ratio</th>\n",
       "      <th>market_cap</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>601211.XSHG</th>\n",
       "      <td>-0.952216</td>\n",
       "      <td>1.67133e+11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002705.XSHE</th>\n",
       "      <td>-0.462954</td>\n",
       "      <td>1.04364e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300531.XSHE</th>\n",
       "      <td>1.73412</td>\n",
       "      <td>4.494e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300363.XSHE</th>\n",
       "      <td>0.152555</td>\n",
       "      <td>5.67849e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600977.XSHG</th>\n",
       "      <td>-0.442247</td>\n",
       "      <td>2.90692e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002843.XSHE</th>\n",
       "      <td>0.62334</td>\n",
       "      <td>3.13996e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002707.XSHE</th>\n",
       "      <td>0.169109</td>\n",
       "      <td>9.29116e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>601579.XSHG</th>\n",
       "      <td>-0.848725</td>\n",
       "      <td>5.98324e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002748.XSHE</th>\n",
       "      <td>-0.307348</td>\n",
       "      <td>3.6456e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300373.XSHE</th>\n",
       "      <td>1.09656</td>\n",
       "      <td>1.39385e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002866.XSHE</th>\n",
       "      <td>0.982678</td>\n",
       "      <td>5.27254e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300360.XSHE</th>\n",
       "      <td>-0.737706</td>\n",
       "      <td>4.55087e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000166.XSHE</th>\n",
       "      <td>-0.361716</td>\n",
       "      <td>1.07704e+11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300498.XSHE</th>\n",
       "      <td>0.139418</td>\n",
       "      <td>1.27377e+11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300581.XSHE</th>\n",
       "      <td>0.560461</td>\n",
       "      <td>2.80059e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300570.XSHE</th>\n",
       "      <td>0.295409</td>\n",
       "      <td>4.94723e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002429.XSHE</th>\n",
       "      <td>-0.832061</td>\n",
       "      <td>1.64328e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603357.XSHG</th>\n",
       "      <td>0.112807</td>\n",
       "      <td>7.28567e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000780.XSHE</th>\n",
       "      <td>-1.25132</td>\n",
       "      <td>5.12225e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300545.XSHE</th>\n",
       "      <td>2.33819</td>\n",
       "      <td>4.76285e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600192.XSHG</th>\n",
       "      <td>-1.06594</td>\n",
       "      <td>2.95529e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600191.XSHG</th>\n",
       "      <td>-0.99437</td>\n",
       "      <td>3.71458e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600190.XSHG</th>\n",
       "      <td>-1.11317</td>\n",
       "      <td>8.44967e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300543.XSHE</th>\n",
       "      <td>0.924669</td>\n",
       "      <td>3.7872e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300436.XSHE</th>\n",
       "      <td>1.7789</td>\n",
       "      <td>4.20991e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002226.XSHE</th>\n",
       "      <td>-1.01195</td>\n",
       "      <td>5.78662e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300357.XSHE</th>\n",
       "      <td>2.34065</td>\n",
       "      <td>8.06707e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300505.XSHE</th>\n",
       "      <td>0.317731</td>\n",
       "      <td>2.99406e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600633.XSHG</th>\n",
       "      <td>-0.59128</td>\n",
       "      <td>1.96851e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002697.XSHE</th>\n",
       "      <td>0.150316</td>\n",
       "      <td>9.5472e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603528.XSHG</th>\n",
       "      <td>0.143376</td>\n",
       "      <td>5.59896e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300604.XSHE</th>\n",
       "      <td>2.33821</td>\n",
       "      <td>4.79236e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>601011.XSHG</th>\n",
       "      <td>-0.566091</td>\n",
       "      <td>1.46454e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603158.XSHG</th>\n",
       "      <td>0.112852</td>\n",
       "      <td>4.03269e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603726.XSHG</th>\n",
       "      <td>-0.113689</td>\n",
       "      <td>2.91075e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002403.XSHE</th>\n",
       "      <td>-0.861557</td>\n",
       "      <td>4.30895e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002607.XSHE</th>\n",
       "      <td>-0.959481</td>\n",
       "      <td>3.33056e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002629.XSHE</th>\n",
       "      <td>0.267125</td>\n",
       "      <td>2.95367e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600475.XSHG</th>\n",
       "      <td>-0.91086</td>\n",
       "      <td>8.20628e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000613.XSHE</th>\n",
       "      <td>2.33679</td>\n",
       "      <td>2.87275e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600039.XSHG</th>\n",
       "      <td>-1.23285</td>\n",
       "      <td>1.48754e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000007.XSHE</th>\n",
       "      <td>2.33894</td>\n",
       "      <td>5.77182e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600863.XSHG</th>\n",
       "      <td>-0.991333</td>\n",
       "      <td>1.74232e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300642.XSHE</th>\n",
       "      <td>1.07547</td>\n",
       "      <td>5.4756e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300585.XSHE</th>\n",
       "      <td>1.49601</td>\n",
       "      <td>3.1424e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603117.XSHG</th>\n",
       "      <td>-0.834464</td>\n",
       "      <td>4.57698e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603698.XSHG</th>\n",
       "      <td>-0.214778</td>\n",
       "      <td>8.30784e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603239.XSHG</th>\n",
       "      <td>0.779757</td>\n",
       "      <td>5.44147e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603101.XSHG</th>\n",
       "      <td>-0.594659</td>\n",
       "      <td>3.2664e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>300190.XSHE</th>\n",
       "      <td>-1.05466</td>\n",
       "      <td>5.53597e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>601908.XSHG</th>\n",
       "      <td>-0.987772</td>\n",
       "      <td>1.09542e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002602.XSHE</th>\n",
       "      <td>1.4436</td>\n",
       "      <td>3.46233e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002368.XSHE</th>\n",
       "      <td>0.125166</td>\n",
       "      <td>1.06382e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>002402.XSHE</th>\n",
       "      <td>1.02602</td>\n",
       "      <td>7.92596e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600865.XSHG</th>\n",
       "      <td>-0.941013</td>\n",
       "      <td>3.01368e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600470.XSHG</th>\n",
       "      <td>-1.08643</td>\n",
       "      <td>3.04614e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000017.XSHE</th>\n",
       "      <td>2.33724</td>\n",
       "      <td>3.47901e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600033.XSHG</th>\n",
       "      <td>-1.22426</td>\n",
       "      <td>1.00994e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000612.XSHE</th>\n",
       "      <td>-0.66774</td>\n",
       "      <td>1.10994e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>600073.XSHG</th>\n",
       "      <td>-0.748761</td>\n",
       "      <td>7.7644e+09</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3469 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             pb_ratio   market_cap\n",
       "601211.XSHG -0.952216  1.67133e+11\n",
       "002705.XSHE -0.462954  1.04364e+10\n",
       "300531.XSHE   1.73412    4.494e+09\n",
       "300363.XSHE  0.152555  5.67849e+09\n",
       "600977.XSHG -0.442247  2.90692e+10\n",
       "002843.XSHE   0.62334  3.13996e+09\n",
       "002707.XSHE  0.169109  9.29116e+09\n",
       "601579.XSHG -0.848725  5.98324e+09\n",
       "002748.XSHE -0.307348   3.6456e+09\n",
       "300373.XSHE   1.09656  1.39385e+10\n",
       "002866.XSHE  0.982678  5.27254e+09\n",
       "300360.XSHE -0.737706  4.55087e+09\n",
       "000166.XSHE -0.361716  1.07704e+11\n",
       "300498.XSHE  0.139418  1.27377e+11\n",
       "300581.XSHE  0.560461  2.80059e+09\n",
       "300570.XSHE  0.295409  4.94723e+09\n",
       "002429.XSHE -0.832061  1.64328e+10\n",
       "603357.XSHG  0.112807  7.28567e+09\n",
       "000780.XSHE  -1.25132  5.12225e+09\n",
       "300545.XSHE   2.33819  4.76285e+09\n",
       "600192.XSHG  -1.06594  2.95529e+09\n",
       "600191.XSHG  -0.99437  3.71458e+09\n",
       "600190.XSHG  -1.11317  8.44967e+09\n",
       "300543.XSHE  0.924669   3.7872e+09\n",
       "300436.XSHE    1.7789  4.20991e+09\n",
       "002226.XSHE  -1.01195  5.78662e+09\n",
       "300357.XSHE   2.34065  8.06707e+09\n",
       "300505.XSHE  0.317731  2.99406e+09\n",
       "600633.XSHG  -0.59128  1.96851e+10\n",
       "002697.XSHE  0.150316   9.5472e+09\n",
       "...               ...          ...\n",
       "603528.XSHG  0.143376  5.59896e+09\n",
       "300604.XSHE   2.33821  4.79236e+09\n",
       "601011.XSHG -0.566091  1.46454e+10\n",
       "603158.XSHG  0.112852  4.03269e+09\n",
       "603726.XSHG -0.113689  2.91075e+09\n",
       "002403.XSHE -0.861557  4.30895e+09\n",
       "002607.XSHE -0.959481  3.33056e+09\n",
       "002629.XSHE  0.267125  2.95367e+09\n",
       "600475.XSHG  -0.91086  8.20628e+09\n",
       "000613.XSHE   2.33679  2.87275e+09\n",
       "600039.XSHG  -1.23285  1.48754e+10\n",
       "000007.XSHE   2.33894  5.77182e+09\n",
       "600863.XSHG -0.991333  1.74232e+10\n",
       "300642.XSHE   1.07547   5.4756e+09\n",
       "300585.XSHE   1.49601   3.1424e+09\n",
       "603117.XSHG -0.834464  4.57698e+09\n",
       "603698.XSHG -0.214778  8.30784e+09\n",
       "603239.XSHG  0.779757  5.44147e+09\n",
       "603101.XSHG -0.594659   3.2664e+09\n",
       "300190.XSHE  -1.05466  5.53597e+09\n",
       "601908.XSHG -0.987772  1.09542e+10\n",
       "002602.XSHE    1.4436  3.46233e+10\n",
       "002368.XSHE  0.125166  1.06382e+10\n",
       "002402.XSHE   1.02602  7.92596e+09\n",
       "600865.XSHG -0.941013  3.01368e+09\n",
       "600470.XSHG  -1.08643  3.04614e+09\n",
       "000017.XSHE   2.33724  3.47901e+09\n",
       "600033.XSHG  -1.22426  1.00994e+10\n",
       "000612.XSHE  -0.66774  1.10994e+10\n",
       "600073.XSHG -0.748761   7.7644e+09\n",
       "\n",
       "[3469 rows x 2 columns]"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fund"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
